#include "lwz.h"


// 命名空间 ----------------------------------
// 1、命名空间::变量
// int main()
// {
//     cout << lwz::a << endl;
//     cout << lwz::b << endl;
//     return 0;
// }

// 2、展开命名空间
// using namespace lwz;

// int main()
// {
//     cout << a << b << endl;
    
//     return 0;
// }

// 3、用什么放什么
// using lwz::a;
// using lwz::b;
// int main()
// {
//     cout << a << b << endl;
    
//     return 0;
// }

// 输入输出 ----------------------------

// int main()
// {
//     int a;
//     double b;
//     // 自动识别数据类型，可以连续输入输出
//     cin >> a >> b;
//     cout << a << " " << b << endl;
//     return 0;
// }


// 缺省参数 --------------------------------
// int add(int a, int b = 1)
// {
//     return a + b;
// }

// 只能从右往左依次缺省
// int add(int a = 1, int b)
// {
//     return a + b;
// }

// 声明和定义不可同时设置缺省 - 防止声明和定义的缺省不一样
// int add(int a, int b = 1);

// int add(int a, int b = 2)
// {
//     return a + b;
// }

// 声明和定义分离的话，在声明中给出缺省


// int main()
// {
//     int a = 0;
//     cout << add(a) << endl;
//     return 0;
// }

// 函数重载 -----------------------------------------
// int add(int a, int b)
// {
//     return a + b;
// }

// // 参数类型不同
// double add(int a, double b)
// {
//     return a + b;
// }

// // 参数顺序不同
// double add(double a, int b)
// {
//     return a + b;
// }

// // 参数个数不同
// double add(int a, double b, double c)
// {
//     return a + b + c;
// }

// int main()
// {
//     int a = 1, b = 1;
//     double c = 1.1, d = 2.2;
//     cout << add(a, b) << endl; // int int
//     cout << add(a, c) << endl; // int double
//     cout << add(c, a) << endl; // double int 
//     cout << add(a, c, d) << endl; // int double double

//     return 0;
// }